package com.jiangyg.mall.search.service;

import com.jiangyg.mall.search.dto.SkuIndexDTO;
import com.jiangyg.mall.search.dto.SkuSearchParamsDTO;
import com.jiangyg.mall.search.dto.SkuSuggestSearchParamsDTO;
import com.jiangyg.mall.search.vo.SkuDetailsVO;
import com.jiangyg.mall.search.vo.SkuSearchResultVO;

import java.io.IOException;
import java.util.List;

/**
 * 类描述：商品索引
 *
 * @author jiangyg
 * @date 2021-12-05
 */
public interface SkuSearchService {

    /**
     * 功能描述：新增商品索引
     *
     * @param skuList 商品信息
     * @return 结果
     */
    boolean save(List<SkuIndexDTO> skuList) throws IOException;

    /**
     * 功能描述：检索商品列表
     *
     * @param dto 参数
     * @return 结果
     */
    SkuSearchResultVO select(SkuSearchParamsDTO dto) throws IOException;

    /**
     * 功能描述：查询 sku 详情
     *
     * @param skuId skuId
     * @return sku 详情
     */
    SkuDetailsVO details(Long skuId) throws IOException;

    /**
     * 功能描述：搜索建议
     *
     * @param dto 请求参数
     * @return 结果
     * @throws Exception
     */
    List<String> suggest(SkuSuggestSearchParamsDTO dto) throws IOException;

}
